interface IGameState// extends IGameObject
{
	//read only
	var _substate(default, null):SubState;
	
	//list of resource request
	var _resourceRequest:Int;
	
	//function new() must create all value you need for loading process, can create a bit UI element but this not best.
	//after loading, you can create UI element in init state.
	//and now, state go to live.
	//In detroy state, please manually return resource for device.
	
	//loading all resouce, get info from server and client.
	function loading ():Void;
	function loadingCompleted ():Bool;
	
	//init ui and anything player can see or touch.
	function init ():Void;
	
	//logic update redraw
	function loop ():Void;
	
	//return resource for device
	function destroy ():Void;
}